State metrics based stopping criterion for turbo-decoding

ABSTRACT

A stopping criterion for a turbo-encoding method. The criterion is based on a state metrics calculated by a forward-backward recursion in a coding trellis of an elementary encoder. If, for at least one elementary decoding stage, forward state metrics of a last symbol of a block or backward state metrics of a first symbol of a block exceeds a first threshold, the turbo-decoding iterations are stopped. If it is not the case, it is further checked whether the state metrics exceeds a second threshold and if the absolute value of the difference between the current state metrics and the state metrics obtained at the previous iteration lies below a given margin. In the affirmative, the turbo-decoding iterations are stopped and a hard decision is taken on extrinsic values.

TECHNICAL FIELD

The present application relates to the field of turbo codes and moreparticular to turbo-decoding.

PRIOR ART

The turbo-codes were introduced by C. Berrou et al. in the seminalarticle entitled “Near Shannon limit error-correcting coding anddecoding: Turbo Codes”, Proceedings of ICC' 93 pp. 1064-1070, haveencountered since then widespread success. The remarkable performancesof the turbo-codes in terms of bit error rate or BER (Bit Error Rate),close to those of random coding, are explained by the presence of one ormore interleaver(s) between different elementary coders. They are usedas error correcting codes in many digital communication standards.

In its most common form, a turbo-encoder can be regarded as a parallelor a serial concatenation of systematic elementary encoders separated byinterleavers.

At the receiving side, turbo-decoding is achieved by an iterativeprocess involving as many elementary decoders as the turbo-encoder haselementary encoders, each iteration improving the reliability of thedecoded codeword.

FIG. 1 illustrates an example of the structure of a turbocodercomprising two parallel concatenated elementary recursive systematicconvolutional (RSC) encoders.

In this example, a block of information bits, I, are coded by twoelementary encoders of the systematic convolutional type, arranged inparallel. Each elementary encoder is constituted by a (shared)systematic path, leaving by definition the information bits unchanged,and by a convolutional encoder. The first convolutional encoder 110outputs parity bits P₁ as a function of the information bits I. Theblock of parity bits is hereafter referred to as the first redundancypart. Similarly, the second convolutional encoder 120 outputs secondparity bits P₂ as a function of the information bits I previouslyinterleaved by the interleaver 130. The block of parity bits P₂ isreferred to as the second redundancy part.

The multiplexer 150 multiplexes the information bits I (systematic part)with the parity bits P₁ (first redundancy part) and P₂ (secondredundancy part) before transmission over the communication channel 160.More specifically, the multiplexed bits are converted into M-ary symbols(where M is the cardinal of the modulation alphabet) prior to carriermodulation.

FIG. 2 illustrates an example of turbo-decoder for decoding a blockencoded by the turbo-encoder of FIG. 1.

The turbo-decoder comprises a first elementary decoder 210 correspondingto encoder 110, a second elementary decoder 220 corresponding to encoder120. The decoders are of the SISO type (Soft In Soft Out) and may carryout the MAP (Maximum A posteriori Probability) decoding algorithm or oneof its derivatives e.g. the Log-MAP or Max-Log-MAP decoding algorithm asknown in the art.

The turbo-decoder receives from the symbol demodulator a noisy versionof the information bits, the first parity bits and the second paritybits, respectively denoted Ĩ, {tilde over (P)}₁ and {tilde over (P)}₂.The systematic bits Ĩ and first parity bits {tilde over (P)}₁ aresupplied to the first elementary decoder 110. The first elementarydecoder also inputs a priori information (also called extrinsicinformation) from the second elementary decoder.

Similarly, the second elementary decoder 220 inputs the receivedinformation bits Ĩ, after having being interleaved in interleaver 230,along with the received parity bits {tilde over (P)}₂. The secondelementary decoder additionally inputs extrinsic information from thefirst elementary decoder after it has been interleaved in interleaver230′. The interleavers 230 and 230′ exhibit the same interleavingpattern Π as interleaver 130. The extrinsic information provided by thesecond decoder is de-interleaved in de-interleaver 240 before beingsupplied to the first elementary decoder. The de-interleaver has theinverse interleaving pattern Π⁻¹ of interleaver 130.

The encoded block is subjected to iterative decoding, each decodingiteration comprising a first half-iteration in decoder 210 and asubsequent second half-iteration in decoder 220. The update and exchangeof extrinsic information, i.e. of the extrinsic values relative to thedifferent information bits, between the first and second elementarydecoder, at each iteration, increases the reliability of the decodedblock. It should be noted that the extrinsic information of the firstdecoder is initialized at values indicative of a lack of prior knowledgeof bit reliability (0 if LLR values are used).

The extrinsic information is classically expressed in terms of softvalues, e.g. LLRs (Log Likelihood Ratios) indicating the reliability ofthe decoding of each binary symbol. After completion of a given numberof iterations or, more generally, when a predetermined stoppingcriterion is met, the decoding process is stopped and a hard decision istaken in 250 on the soft values to provide hard bit values. The harddecision is taken by performing a simple comparison with a giventhreshold (0 in case of LLR values).

The power consumption and the latency linearly depend upon the number ofiterations of the decoder. It is therefore important to design anefficient stopping criterion, which does not lead to unnecessaryiterations while simultaneously achieving a reasonable level ofreliability of the decoded values.

Several stopping criteria have been proposed in the literature, based onsoft and/or hard values.

US2007/0300139 discloses a stopping criterion based on the comparison ofthe LLR values output by an elementary decoder for two consecutiveiterations. The implementation of such a stopping criterion requireshowever large storage capacity since a soft value (e.g. coded with abyte) has to be stored for each binary symbol of the block.

EP-A-1455457 further proposes to compare the minimum absolute value ofthe LLR values of an block with a given threshold. Once this minimumabsolute value exceeds the threshold, the iterative decoding process isstopped. In other words, the decoding process stops when the reliabilitylevel of the less reliable bit is high enough.

In practice, this stopping criterion is quite sensitive to the thresholdvalue. A too high threshold may result in a frequent rejection ofcorrectly decoded blocks.

An alternative stopping criterion is based on the cross entropy of theLLR related to two consecutive iterations. This criterion is efficientbut requires extra computation and considerable memory capacity.

Further stopping criteria are based on monitoring the sign changes inthe extrinsic information related to two consecutive iterations. Indeedif a sign of a soft value oscillates from on iteration to the text, thisindicates that the corresponding bit is not yet reliable. This stoppingcriterion requires considerable memory capacity, as the signs of the LLRvalues for at least two blocks of extrinsic information need to bestored.

The aim of the present invention is therefore to propose a new stoppingcriterion for a turbodecoding process, which is robust without needingcomputational overhead or large memory capacity.

DISCLOSURE OF THE INVENTION

The present invention is defined in the appended independent claims.Various advantageous embodiments are given in the dependent claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be better understood from the description ofthe following embodiments, by way of illustration and in no waylimitative thereto:

FIG. 1 schematically illustrates an example of turbo-encoder known fromthe prior art;

FIG. 2 schematically illustrates an example of turbo-decoder known fromthe prior art;

FIG. 3 schematically illustrates a coding path in the trellis diagram ofan elementary encoder of the turbo-encoder;

FIG. 4 schematically represents forward state metrics and backward statemetrics used in the forward-backward decoding algorithm;

FIG. 5A illustrates the evolution of the forward state metrics of thelast block symbol for consecutive turbo-decoding iterations;

FIG. 5B illustrates the evolution of the state metrics for the varioussymbols of the block and consecutive turbo-decoding iterations;

FIG. 6 schematically represents a flowchart of a turbo-decoding methodusing a stopping criterion according to an embodiment of the invention.

DETAILED DISCLOSURE OF PARTICULAR EMBODIMENTS

We will consider again in the following a turbo-decoder for decodingblocks of binary symbols which have been encoded by a turbo-encoder. Theterm block can be construed here as a frame or a codeword. The binarysymbols processed by the turbo-decoder are expressed in terms of softvalues (soft information), typically in terms of LLRs as known in theart.

The turbo-encoder may be constituted by a plurality P of parallel orserially concatenated elementary encoders or a combination of suchserial and parallel concatenated elementary encoders (hybridturbo-encoder). Without loss of generality we will assume that theelementary encoders are RSC (Recursive Systematic Convolutional)encoders. It will nevertheless be understood by the man skilled in theart that other types of encoders can be used while remaining in thescope of present invention.

The turbo-decoder is constituted by the same plurality P of elementarydecoders and performs an iterative decoding process as set out above. Itis recalled that each elementary decoder corresponds to an elementaryencoder of the turbo-encoder and processes the same kind of informationas the one output by the corresponding elementary encoder. Morespecifically, each elementary decoder inputs the systematic part of thereceived block (e.g. after propagation over the communication channel),possibly interleaved, and a redundancy part corresponding to the onegenerated by said elementary encoder. In addition, the elementarydecoder receives extrinsic information from at least another elementarydecoder. Each elementary decoder generates its own extrinsic informationfrom the input systematic part, redundancy part and extrinsicinformation. The extrinsic information thus generated is supplied inturn to at least another elementary decoder.

Before describing the operation of an elementary decoder, we firstconsider the corresponding elementary coder in the turbo-encoder. Thiselementary encoder, as any convolutional encoder, can be regarded as afinite state machine, the transitions of which are determined by thegenerator polynomial. If the memory of the encoder is of size v (v shiftregister stages), the finite state machine may take 2^(v) states, eachstate being defined by the contents of the memory. It should be notedthat the various elementary encoders of the turbo-encoder may havedifferent memory sizes (i.e. shift registers having different lengths)and hence different numbers of states.

The coding operation may be regarded as a coding path in a trellisdiagram as represented in FIG. 3.

Conventionally, the states of the encoder are represented vertically bycircles whereas the horizontal direction is the time axis. Each columnof states corresponds to a clock cycle. At each input bit, on progressesrightwards (or forward) in the trellis, and the encoder goes from astate a time k to a subsequent state at time k+1. The transition betweenthe state at time k and the state at time k+1 is therefore representedby an edge in the trellis (and by an arc in the state diagram). Thecoding of a block of bits results therefore in a path within thetrellis. At each time k, the encoder outputs a parity bit (in additionto the systematic bit), which depends upon the state of the encoder andthe input bit.

The corresponding elementary decoder implements a forward-backwardalgorithm as know in the art. By forward-backward algorithm we mean herethe MAP decoding algorithm or one of its derivatives such as the Log-MAPor the Max-Log-MAP algorithm. A description of the MAP algorithm can befound in the original paper of Bahl et al. entitled “Optimal decoding oflinear codes for minimizing symbol error rate” published in IEEE Trans.on Information Theory, pp. 284-287, March 1974. A description of theMax-Log-MAP algorithm can be found e.g. in the article of C. Hye-Mi etal. entitled “Low power hybrid turbo decoding based in reversecalculation, ISCAS 2006.

The forward-backward decoding algorithm is based on the same trellis asthe coding trellis described above. More specifically, theforward-backward decoding algorithm mainly comprises three steps: aforward recursion, a backward recursion and an LLR calculation.

In the forward recursion, the algorithm recursively calculates theforward state probability of being in each state of the trellis at eachtime k given the knowledge of all the previous received symbols. Theforward state probability, also called forward state metrics, isrecursively obtained by:

$\begin{matrix}{{{\alpha_{k}(s)} = {\sum\limits_{s^{\prime}}^{\;}\;{{\alpha_{k - 1}\left( s^{\prime} \right)}{\gamma_{k}\left( {s^{\prime},s} \right)}}}}{{k = 1},{{\ldots\mspace{14mu} N} - 1}}} & (1)\end{matrix}$where s is the current state and s′ is the preceding state, α_(k−1)(s′)is the forward state probability of being at state s′ at time k−1, andγ_(k)(s′,s) is the branch probability of the transition between state s′and state s, given the received symbol, N is the size of the block. Thestate s′ at the beginning of the transition s′→s will be referred to asthe transition starting state whereas the state will be referred to asthe transition ending state. The branch probability is also called thebranch metrics.

The forward recursion is initialized by forcing the starting state tostate 0 and setting:α₀(0)=1 and α₀(s)=0 for s≠0  (2)

FIG. 4 schematically illustrates how the forward state metrics α_(k)(s)is calculated for a state s of the trellis. At time k, the forward statemetrics of state s is calculated (by expression (1)) from the forwardstate metrics of the possible preceding states s′ (in grey) at time k−1(i.e. those corresponding to an authorized transition s′→s), α_(k−1)(s),and the transition metrics between states s and s′, γ_(k)(s′,s).

Similarly, in the backward recursion, the algorithm recursivelycalculates the backward state probability of being in each state of thetrellis at each time k given the knowledge of all the following symbolsat time k+1. The backward state probability, also called backward statemetrics, is recursively obtained by:

$\begin{matrix}{{{\beta_{k - 1}\left( s^{\prime} \right)} = {\sum\limits_{s}^{\;}\;{{\beta_{k}(s)}{\gamma_{k}\left( {s^{\prime},s} \right)}}}}{{k = N},\ldots\mspace{14mu},2}} & (3)\end{matrix}$

As illustrated in FIG. 4, the backward state metrics at time k iscalculated from the backward state metrics of the possible followingstates s (nodes shaded in grey) at time k+1, β_(k+1)(s), and thetransition metrics between states s and s′, γ_(k+1)(s′,s).

The backward recursion is initialized by forcing the ending state tostate 0 and setting:β_(N)(0)=1 and β_(N)(s)=0 for s≠0  (4)

The output LLR for each bit u_(k) at time k is given by:

$\begin{matrix}{{L\left( u_{k} \right)} = {{\ln\frac{P\left( {u_{k} = {{+ 1}❘y_{k}}} \right)}{P\left( {u_{k} = {{- 1}❘y_{k}}} \right)}} = {\ln\frac{\sum\limits_{{{({s^{\prime},s})}\mspace{11mu} u_{k}} = {+ 1}}^{\;}\;{{\alpha_{k - 1}\left( s^{\prime} \right)}{\gamma_{k}\left( {s^{\prime},s} \right)}{\beta_{k}(s)}}}{\sum\limits_{{{({s^{\prime},s})}\mspace{11mu} u_{k}} = {- 1}}^{\;}\;{{\alpha_{k - 1}\left( s^{\prime} \right)}{\gamma_{k}\left( {s^{\prime},s} \right)}{\beta_{k}(s)}}}}}} & (5)\end{matrix}$where y_(k) is the modulation symbol received on the communicationchannel at time k and where the bit values have been noted ±1. The uppersummation in (5) is carried out over all branches with input label +1and the lower summation is carried out over all branches with inputlabel −1.

For an AWGN (Additive White Gaussian Noise) channel, the branch metricsγ_(k)(s,s′) can be obtained as:

$\begin{matrix}{{\gamma_{k}\left( {s^{\prime},s} \right)} = {\exp\left( {- \frac{{{y_{k} - x_{k}}}^{2}}{2\;\sigma^{2}}} \right)}} & (6)\end{matrix}$where σ² is the noise variance and x_(k) is the expected symbol for thetransition s′ to s. Therefore, the γ_(k)(s′,s) values can be calculatedat each turbo-decoding iteration.

The expressions (1)-(6) refer to the MAP algorithm. They can besimplified by using logarithmic values (Log-MAP algorithm) and evenfurther simplified by retaining only the most significant values underthe summation signs (Max-Log-MAP algorithm). In the latter case,denoting {hacek over (ρ)} for ln ρ:

$\begin{matrix}{\mspace{85mu}{{{\overset{\Cup}{\alpha}}_{k}(s)} = {\max\limits_{s^{\prime}}\mspace{14mu}\left\lbrack {{{\overset{\Cup}{\alpha}}_{k - 1}\left( s^{\prime} \right)} + {{\overset{\Cup}{\gamma}}_{k}\left( {s^{\prime},s} \right)}} \right\rbrack}}} & \left( 1^{\prime} \right) \\{\mspace{79mu}{{{{\overset{\Cup}{\alpha}}_{0}(0)} = 0}\mspace{79mu}{and}\mspace{79mu}{{{\overset{\Cup}{\alpha}}_{0}(s)} = {- \infty}}\mspace{79mu}{{{for}\mspace{14mu} s} \neq 0}}} & \left( 2^{\prime} \right) \\{\mspace{76mu}{{{\overset{\Cup}{\beta}}_{k - 1}\left( s^{\prime} \right)} = {\max\limits_{s^{\prime}}\mspace{14mu}\left\lbrack {{{\overset{\Cup}{\beta}}_{k}(s)} + {{\overset{\Cup}{\gamma}}_{k}\left( {s^{\prime},s} \right)}} \right\rbrack}}} & \left( 3^{\prime} \right) \\{\mspace{79mu}{{{{\overset{\Cup}{\beta}}_{N}(0)} = 0}\mspace{79mu}{and}\text{}\mspace{79mu}{{{\overset{\Cup}{\beta}}_{N}(s)} = {- \infty}}\mspace{79mu}{{{for}\mspace{14mu} s} \neq 0}}} & \left( 4^{\prime} \right) \\{{{L\left( u_{k} \right)}{\max\limits_{{{{({s^{\prime},\; s})}\; u_{k}} = {+ 1}}\;}\mspace{14mu}\left\lbrack {{{\overset{\Cup}{\alpha}}_{k - 1}\left( s^{\prime} \right)} + {{\overset{\Cup}{\gamma}}_{k}\left( {s^{\prime},s} \right)} + {{\overset{\Cup}{\beta}}_{k}(s)}} \right\rbrack}} - {\max\limits_{{{{({s^{\prime},\; s})}\; u_{k}} = {- 1}}\;}\mspace{14mu}\left\lbrack {{{\overset{\Cup}{\alpha}}_{k - 1}\left( s^{\prime} \right)} + {{\overset{\Cup}{\gamma}}_{k}\left( {s^{\prime},s} \right)} + {{\overset{\Cup}{\beta}}_{k}(s)}} \right\rbrack}} & \left( 5^{\prime} \right) \\{\mspace{79mu}{{{\overset{\Cup}{\gamma}}_{k}\left( {s^{\prime},s} \right)} = {{- {\frac{1}{2\;\sigma^{2}}\left\lbrack {{y_{k}}^{2} + {x_{k}}^{2}} \right\rbrack}} + {\frac{1}{\sigma^{2}}\left( {y_{k} \cdot x_{k}} \right)}}}} & \left( 6^{\prime} \right)\end{matrix}$

As the first term between brackets is common to all branch metrics, itcan be dropped for the purpose of calculating (1′), (3′) and (5′), inother words:

$\begin{matrix}{{{\overset{\Cup}{\gamma}}_{k}\left( {s^{\prime},s} \right)} = {\frac{1}{\sigma^{2}}\left( {y_{k},x_{k}} \right)}} & \left( 6^{''} \right)\end{matrix}$

In expressions (6) or (6″), the only changing parameter is x_(k). x_(k)is a P+1 dimension vector (assuming one parity bit per elementarycoder), the elements of which are the systematic bit, denoted x_(k) ^(s)and the parity bits denoted x_(k) ^(r) ^(p) , p=1, . . . , P. The softvalue of the systematic bit in (6) or (6″) is replaced by:x _(k) ^(s) =y _(k) ^(s) +L _(e)(u _(k))  (7)where L_(e)(u_(k)) is the extrinsic information provided from anotherelementary decoder. Therefore, the γ_(k)(s′,s) values can be calculatedat each turbo-decoding iteration.

The forward state metrics of the last symbol of the block can beregarded as a cumulated metrics along the expected coding path intrellis, when travelled through in the forward direction. Similarly, thebackward state metrics of the first symbol can be regarded as acumulated metrics along the expected coding path in the trellis, whentravelled through in the backward direction.

In general, the state metrics (either forward or backward) increasesalong the travelled path. For example, if the Max-Log-MAP algorithm isused, the forward state metrics increases between the first symbol andthe last symbol from 0 to the cumulated value:

$\begin{matrix}{{{\overset{\Cup}{\alpha}}_{N}(s)} = {\max\limits_{s^{\prime}}\mspace{14mu}\left( {\sum\limits_{k = 1}^{N}\;{{\overset{\Cup}{\gamma}}_{k}\left( {s^{\prime},s} \right)}} \right)}} & (8)\end{matrix}$and, similarly, the backward state metrics increases between the lastsymbol and the first symbol from 0 to the same cumulated value:

$\begin{matrix}{{{\overset{\Cup}{\beta}}_{0}(s)} = {\max\limits_{s^{\prime}}\mspace{14mu}\left( {\sum\limits_{k = 1}^{N}\;{{\overset{\Cup}{\gamma}}_{k}\left( {s^{\prime},s} \right)}} \right)}} & (9)\end{matrix}$

This cumulated value reflects the likelihood of the considered codingpath. In the remaining part of the description, it should be understoodthat the coding path referred to is the one exhibiting the highestlikelihood.

FIG. 5A represents the cumulated value α_(N)[i] of the forward statemetrics of the considered coding path, for a plurality of consecutiveiterations i. The curves 510 correspond to different blocks of symbolsand a SNR value of 1.1 dB.

It should be noticed that the forward state metrics saturates after 4 or5 iterations. In other words, the cumulated value of the forward statemetrics is a good indicator of the convergence of the turbo-decoding.Similarly, the backward state metrics saturates after a few iterationsand is therefore an equivalent indicator of convergence.

FIG. 5B illustrates the variation of the forward state metrics α_(k)[i]add along the considered coding path, k=0, . . . , N for consecutiveturbo-decoding iterations.

For each iteration, the forward state metrics ramps up from the firstsymbol to the last (N^(th)) symbol of the block. As already noticed inFIG. 6, the cumulated value, α_(N), reached at the N^(th) symbol of theblock, increases as the turbo-decoding proceeds and then saturates aftera few iterations.

A first stopping criterion according to the present invention consistsin comparing the cumulated value of the forward state metrics (resp. thebackward state metrics) with a predetermined threshold α_(th) (resp.β_(th)). This threshold, hereinafter referred to as first threshold, canbe tuned by simulation to the block length and the expected SNR (Signalto Noise Ratio). If the cumulated value at iteration i is greater thansaid threshold, i.e. if:α_(N) [i]>α _(th)(resp. β_(N) [i]>β _(th))  (10)the turbo-decoding iterations are stopped.

A second stopping criterion can be combined with the first in order toenhance its robustness. More specifically, if the cumulated value of theforward state metrics (resp. backward state metrics) does not meet thefirst stopping criterion, it is checked whether a second stoppingcriterion:α_(N) [i]>α′ _(th) and |α_(N) [i]−α _(N) [i−1]|<Δ_(α)  (11)(resp. β_(N)[i]>β′_(th) and |β_(N)[i]−β_(N)[i−1]|<Δ_(β)) is met, whereα′_(th) (resp. β′_(th)) is a second threshold and Δ_(α) (resp. Δ_(β)) isa margin. In the affirmative, the turbo-decoding iterations are stopped.The second criterion (11) expresses the saturation of the state metricsat a sufficient high level. Typically, the second threshold is lowerthan the first threshold.

FIG. 6 represents a flowchart of a turbo-decoding method using astopping criterion according to an embodiment of the invention.

As already mentioned in the outset, the turbo-decoding method consistsin a plurality of iterations, each iteration being subdivided into Pdecoding stages, 610 ₁, . . . , 610 _(P) sequentially performed by the Pelementary decoders.

The stopping criterion is implemented here in the p^(th) decoder. Moregenerally, it is implemented in at least one elementary decoder.

The p^(th) decoder receives the systematic soft bits y_(k) ^(s) and thesoft parity bits y_(k) ^(r) ^(p) from the demodulator. It also inputsthe extrinsic values L_(e) ^(p−1)(u_(k)) from the preceding decoder.

We consider here the i^(th) turbo-decoding iteration. The decoding stage610 _(p) starts with a forward-backward recursion in 611. Theforward-backward algorithm can be the MAP, Log-MAP or Max-Log-MAPdecoding algorithm.

The state metrics of the last symbol of the block (forward statemetrics) or the first symbol of the block (backward state metrics) iscalculated at the end of the forward-backward recursion 611 and thefirst stopping criterion is checked in 612.

If the state metrics exceeds the first threshold (expression (10), theturbo-encoding exits and a hard decision is taken in 614 on theextrinsic values just obtained from the forward-backward recursion.

In the negative, the second stopping criterion is checked in 613. If thestate metrics exceeds the second threshold and if the absolute value ofthe difference of state metrics between the current iteration and theprevious one lies below a predetermined margin, the turbo-encoding exitsand a hard decision on the extrinsic values is taken in 614. Theturbo-decoding then ends at 615.

Conversely, if neither the first nor the second stopping criterion ismet, the iteration proceeds with the next decoding stage 610 _(p+1).

According to a variant (not shown), the first stopping criterion can beimplemented alone. However for increased robustness to SNR, thecombination of the first and second criteria is preferred.

It will also be understood by the man skilled in the art that theimplementation of the first stopping criterion does not require anystorage in a memory (no state metrics is stored) and can be checked onthe fly with very little additional overhead.

The invention claimed is:
 1. A turbo-decoding method for turbo-decodinga block of symbols having been coded by a turbo-encoder, theturbo-decoding comprising: a plurality of iterations, each iterationcomprising a plurality of decoding stages, each decoding stage beingcarried out by an elementary decoder corresponding to an elementaryencoder of the turbo-encoder, each decoding stage performing aforward-backward recursion on a coding trellis of the correspondingencoder, the trellis representing various states of the encoder for eachsymbol of the block; wherein a forward state metrics of the last symbolor a backward state metrics of the first symbol of the block iscalculated; wherein the state metrics is compared with a firstpredetermined threshold; and wherein if the state metrics exceeds thefirst predetermined threshold, the iterations are stopped.
 2. Theturbo-decoding method according to claim 1, wherein if the state metricsdoes not exceed the first predetermined threshold, it is checked (a)whether the state metrics exceeds a second predetermined threshold; and(b) if the absolute value of the difference between the state metricsand the state metrics of a previous iteration lies below than apredetermined margin, and if both conditions and are met, the iterationsare stopped.
 3. The turbo-decoding method according to claim 2, whereinthe second threshold is lower that the first threshold.
 4. Theturbo-decoding method according to claim 2, wherein each decoding stagesupplies extrinsic values of systematic bits to a next decoding stageand a last decoding stage supplies extrinsic values of the systematicbits to a first decoding stage.
 5. The turbo-decoding method accordingto claim 4, wherein if the state metrics exceeds the first threshold, ahard decision is taken on the extrinsic values supplied by the at leastone decoding stage to provide hard decided systematic bits.
 6. Theturbo-decoding method according to claim 4, wherein if conditions (a)and (b) are met, a hard decision is taken on the extrinsic valuessupplied by the at least one decoding stage to provide hard decidedsystematic bits.
 7. The turbo-decoding method according to claim 1,wherein the forward-backward recursion is performed according to a MAPdecoding algorithm.
 8. The turbo-decoding method according to claim 1,wherein the forward-backward recursion is performed according to aLog-MAP decoding algorithm.
 9. The turbo-decoding method according toclaim 1, wherein the forward-backward recursion is performed accordingto a Max-Log-MAP decoding algorithm.